In a network based upon IEEE 802.11, stations can enter a power save state. When in a power save state, the station (STA) is required to wake up periodically in order to receive a beacon from the network controller—an access point (AP) in the case of an infrastructure network or a group owner (GO) in the case of a Wi-Fi Direct connection.
In the following description the infrastructure network with an AP will be used. The same description would apply to the Wi-Fi Direct network when a GO is used.
When a STA indicates to the AP to which it is associated that it is in the power save state and sleeping, the AP will buffer packets for that STA and then indicate in beacons if there are buffered packets for that STA. By waking up periodically in order to receive beacons, the STA can then determine if there are buffered packets for it and then perform the correct procedures in order to retrieve them.
When sleeping, the STA wants to wake up, receive the beacon and then go back to sleep again as soon as practical such that power consumption is minimized. The AP is required by the 802.11 standard to schedule the beacon transmission to be transmitted at a regular interval, known as target beacon transmission time, TBTT, but the beacon transmissions can be subject to significant unpredictable delay and jitter. This may occur, if the network is heavily loaded, or subject to interference from, for example, overlapping networks or networks on adjacent channels, or if there is heavy uplink traffic from STAs to the AP. then. In fact, APs often exhibit beacon jitter even when traffic is not that heavy due to the AP carrying out other tasks such as scanning and upper layer applications which can delay the transmission of the beacon. The STA when operating in the power save state needs to predict when the beacon is due to be transmitted as waking up too early will waste power and waking up too late will mean that the beacon could be missed. The basic objective therefore for the STA is to determine the correct TBTT and to hence have a high probability of receiving the Beacon, and to be active for the shortest possible time.
Consider the case of the first beacon received by the STA. The STA does not know if this beacon is on time or delayed but it does know that the AP attempts to schedule its beacons at a regular time, TBTT. If one beacon is delayed, the next beacon is still scheduled to be transmitted at the regular time, i.e. the delay is only for that one beacon. Hence, when receiving beacons all that is known is the TBTT but the effective starting point is not known.
FIG. 1 illustrates the case where beacons are jittering and subject to varying delays.
If the AP was scheduling its beacons with zero jitter, then each beacon would be transmitted with exactly TBTT spacing. The expected time between beacons TBTT, is shown as Tb 1 in the diagram. Let the correct time, assuming no delay, of the nth beacon be Tn, and the delay on the nth beacon be Δn, such that the actual time that the nth beacon was transmitted is To+nTb+Δn. Each STA maintains a copy of the timing synchronization function, TSF, which is a local timer that is synchronized to the timing of the AP.
TSF is used in the following analysis, as follows: ‘Actual TSF’ is the time that a beacon was received, and ‘Predicted TSF’ is the ‘Actual TSF’ of the previous beacon plus TBTT, Tb. The first beacon is received at time To 2. The next beacon is then predicted to arrive at time To+Tb 3. The actual time of arrival is To+Tb+Δ1 4.
The table below shows the relationships between the beacon number, the Actual TSF, the Predicted TSF. In the fourth column the difference between the Actual and Predicted TSF is shown.
Difference(Actual − predictedBeacon #Actual TSFPredicted TSFTSF)0To + Δo1T1 = To + Tb + Δ1To + Tb + ΔoΔ1 − Δo2T2 = To + 2Tb + Δ2To + 2Tb + Δ1Δ2 − Δ13T3 = To + 3Tb + Δ3To + 3Tb + Δ2Δ3 − Δ2nTn = To + nTb + ΔnTo + nTb + Δn−1Δn − Δn−1
Note that the difference for the nth beacon is Δn−Δn−1. If the nth beacon is sent at the correct time, then the delay on the nth beacon, Δn, will be zero. One prior art method aims to identify the beacon that was transmitted at the correct time. Simply determining the minimum difference value only serves to identify when two successive beacons were sent with the same delay, but by identifying such occurrences it may be possible to either assume that these represents beacons that are sent on time, or, by carrying out some statistical analysis, such as looking at the number of times this occurred and comparing the actual received times it would be possible to identify the correct timing by assuming that the majority of these occurrences are when the beacons are on time. This method is not always accurate and safety margins need to be used to account for the inaccuracy.
Another prior art method is to store the time of the first beacon and then subtract that value from the TSF of each subsequent beacon as follows:Time of first beacon=To+Δo Time of nth Beacon,Tn=To+nTb+Δn Difference=(To+nTb+Δn)−(To+Δo)=nTb+Δn−Δo 
The value of nTb (n*Tb) which is the product of the number of beacons received and the TBTT, is known, and hence can be subtracted from the difference to produce the result Δn−Δo. This can be carried out for each beacon and the STA can determine the minimum value of Δn−Δo. The minimum value is then assumed to represent the case when the beacon was on time such that Δn=0. Hence, the value of the delay of the first received beacon, Δo is now known. By subtracting the value of Δo from the time of the first beacon, the method obtains a value for To and hence the time of the (n+1)th beacon can be predicted simply as Tn=To+(n+1)Tb.
This prior art method requires that the time of the first beacon is stored, and the number of beacons is also accurately counted. The calculation also needs to be carried out on every beacon looking for the minimum value of Δn−Δo. This prior art method can result in an accurate estimation of the actual beacon times but it relies upon storing the original beacon time in memory and maintaining an accurate count of the beacons, including any missed beacons. Problems also occur if the beacon timing undergoes a shift or an adjustment in time, and unfortunately this does happen.